/*
 * AUTOSAR_Types.h
 *
 *  Created on: Sep 24, 2025
 *      Author: ADMIN
 */

#ifndef DOMAIN_INC_AUTOSAR_TYPES_H_
#define DOMAIN_INC_AUTOSAR_TYPES_H_

/***********************************************************************************
 ********************************************************************************
 *--------------------------------------------------------------------------
 *                            FILE DESCRIPTION
 *--------------------------------------------------------------------------
 *
 *    File Name    :     AUTOSAR_Types.h
 *    File Module  :     Domain
 *    File Description:  This file is about the parameter types of AUTOSAR.
 *
 *
 ********************************************************************************
 ***********************************************************************************/

#include <stdint.h>
#include <stdbool.h>

/* AUTOSAR basic data type definitions */
typedef uint8_t  uint8;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;

typedef int8_t   sint8;
typedef int16_t  sint16;
typedef int32_t  sint32;
typedef int64_t  sint64;

typedef float    float32;
typedef double   float64;

/* AUTOSAR boolean type */
typedef bool     boolean;

/* AUTOSAR byte type (unsigned 8-bit) */
typedef uint8_t  uint8;
typedef uint8_t  byte;

/* AUTOSAR status type */
typedef uint8_t  Std_ReturnType;
#define E_OK     0x00U
#define E_NOT_OK 0x01U

/* AUTOSAR version information type */
typedef struct {
    uint16 vendorID;
    uint16 moduleID;
    uint8 sw_major_version;
    uint8 sw_minor_version;
    uint8 sw_patch_version;
} Std_VersionInfoType;


/* AUTOSAR constant definitions */
#define TRUE (1U)
#define FALSE (0U)
#define NULL ((void *)0)

#endif /* DOMAIN_INC_AUTOSAR_TYPES_H_ */
